﻿using SD.Infrastructure.AppServiceBase;
using System.ServiceModel;

namespace SlamDunk.MES.IAppService.Interfaces
{
    /// <summary>
    /// 编号生成服务契约接口
    /// </summary>
    [ServiceContract]
    public interface INumberContract : IApplicationService
    {
        #region # 生成库存单据编号 —— string GenerateStockOrderNo(string prefix)
        /// <summary>
        /// 生成库存单据编号
        /// </summary>
        /// <param name="prefix">前缀</param>
        /// <returns>单据编号</returns>
        [OperationContract]
        string GenerateStockOrderNo(string prefix);
        #endregion

        #region # 生成销售订单编号 —— string GenerateSaleOrderNo()
        /// <summary>
        /// 生成销售订单编号
        /// </summary>
        /// <returns>销售订单编号</returns>
        [OperationContract]
        string GenerateSaleOrderNo();
        #endregion

        #region # 生成生产计划编号 —— string GenerateProductionPlanNo()
        /// <summary>
        /// 生成生产计划编号
        /// </summary>
        /// <returns>生产计划编号</returns>
        [OperationContract]
        string GenerateProductionPlanNo();
        #endregion

        #region # 生成作业计划编号 —— string GenerateExecutionPlanNo()
        /// <summary>
        /// 生成作业计划编号
        /// </summary>
        /// <returns>作业计划编号</returns>
        [OperationContract]
        string GenerateExecutionPlanNo();
        #endregion

        #region # 生成作业计划质量检查编号 —— string GenerateExecutionPlanInspectionNo()
        /// <summary>
        /// 生成作业计划质量检查编号
        /// </summary>
        /// <returns>作业计划质量检查编号</returns>
        [OperationContract]
        string GenerateExecutionPlanInspectionNo();
        #endregion

        #region # 生成工单质量检查编号 —— string GenerateWorkOrderInspectionNo()
        /// <summary>
        /// 生成工单质量检查编号
        /// </summary>
        /// <returns>工单质量检查编号</returns>
        [OperationContract]
        string GenerateWorkOrderInspectionNo();
        #endregion

        #region # 生成设备维护记录编号 —— string GenerateEquipmentMaintenanceNo()
        /// <summary>
        /// 生成设备维护记录编号
        /// </summary>
        /// <returns>设备维护记录编号</returns>
        [OperationContract]
        string GenerateEquipmentMaintenanceNo();
        #endregion
    }
}
